The present invention relates to an application programs cooperation method for supporting one application program to use a procedure defined by another application program.
While writing a text by a word processor, the user has often a need to merge a graphics image generated by graphics software or a chart or graph generated by spreadsheet software into the text. To merge a graphics image, chart, or graph, the word processor checks the format of data processed by the graphics software or spreadsheet software, or runs the graphics application program or spreadsheet application program to make the program merge the graphics image, chart, or graph into the text.
Attention has been paid to a technique of integrally managing combinations of data and application programs to facilitate cooperation between application programs, i.e., to facilitate a procedure call from one application program to another application program. For example, in NewWave described in 1989 HEWLETT-PACKARD JOURNAL 9, PP. 9-17 by Peter S. Showman, an application program and data to be processed by the program are integrally managed and called an object. Which application program is to be selected for given data is managed by using objects, so that a proper application program is automatically selected only by designating data to be used. A message is also exchanged for the communication between objects. A caller object can know from the message, procedures supported by the callee object, and can request the callee object to execute the supported procedure. Each message is a combination of characters and symbols used for the information transfer between objects, and includes a command, its response, and the like.
In NewWave with objects being interconnected by links, a chart, graph, or the like generated by spreadsheet software can be synthesized with a text generated by a word processor. In this case, a caller object displays callee data not by using a caller application program but by simply instructing the callee object to supply and display the data at a designated display area. The callee object is therefore responsible for displaying its own data at the designated area of the caller object.
CORBA addressed in NIKKEI COMPUTER, 16/12/1991, pp. 81-93, provides an application program support system wherein a plurality of objects under distributed environment are cooperated each other by exchanging a message. An object request broker (ORB) as the nuclei of CORBA receives a message from a caller object and sends it to a proper callee object. ORB then receives the result processed at the callee object, and returns it to the caller object. In this manner, a procedure of an object at another computer can be called.
The above-cited related techniques have the following problems.
In calling a procedure supported by an application program from another application program by sending a message to the object which supports the procedure, it is necessary for the caller object (hereinafter called a client) to know the name and call arguments of the procedure supported by the callee object (hereinafter called a server).
If a procedure call method, the number, type, or order of arguments is changed at a server, or if a new server is provided and has a different argument list, application programs at clients are required to be updated.
In the case that an argument of a procedure is changed because of editing data at the server, it is necessary to notify clients of such a change to allow them to change the argument. For example, in a procedure which provides a display of part of data of the object by using an argument indicative of the display range, if the server changes the data, clients are required to change the display range argument.
In NewWave providing a function to interconnect objects by links, each link represents a containment relationship between caller and callee objects for the display of the callee object within the display area of the caller object. However, even if a server has a procedure other than a display procedure, such as a moving image procedure including playback, stop, slow playback, and rapid feed, clients cannot select and execute such a procedure.